package com.liu.design.behavior.strategy.pay;

/**
 * @author LIU
 * @version 1.0
 * @date 2024/5/8 11:03
 * @description 策略模式（Strategy Pattern）
 * 指对象有某个行为，但是在不同的场景中，该行为有不同的实现算法。
 * 用算法族分别封装起来，实现同一个接口，让他们之间可以互相替换，让算法的变化独立于使用算法的客户。
 *
 * 环境类(Context):持有抽象策略类的引用，用来操作策略的上下文环境。
 * 抽象策略类(Strategy):策略的抽象类或接口，给出所需实现接口。
 * 具体策略类(ConcreteStrategy):具体的策略实现。
 */
public class _Test {
    public static void main(String[] args) {
        Order order = new Order("1", "1", 500);
        String res = order.pay();
        System.out.println("支付结果：" + res);

        System.out.println("=====================================");

        res = order.pay(PayStrategyContext.UNION_PAY);
        System.out.println("支付结果：" + res);

    }
}
